package com.project.controller;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.project.bean.SupplierBean;
import com.project.service.ISupplierService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("supplier")
@Api(tags = "供应商控制层")
public class SupplierController {
    @Autowired
    private ISupplierService supplierService;
    /**
     * ####分页动态查询供应商信息
     * 输入：页码，供应商名称，经营范围
     * 处理：分页动态查询供应商信息
     * 输出：分页对象
     * 供应商信息：供应商编号，供应商名称，负责人，经营范围
     * @param pageNum
     * @param supplierName
     * @param scope
     * @return
     */
    @GetMapping( "cutFindByItem")
    @ApiOperation(value = "分页动态查询供应商")
    public IPage<SupplierBean> cutFindByItem(Integer pageNum, String supplierName, String scope){
        return supplierService.cutFindByItem(pageNum, supplierName, scope);
    };
    /**
     * 按id查询供应商信息
     * 输入：供应商编号
     * 处理：根据供应商id，查询供应商信息
     * 输出：供应商对象
     * 供应商信息：供应商编号，供应商名称，负责人，负责人电话、供应商地址，经营范围
     * @param supplierId
     * @return
     */
    @GetMapping( "findById")
    @ApiOperation(value = "按id查询供应商信息")
     public SupplierBean findById(Integer supplierId){
        return supplierService.findById(supplierId);
    };
    /**
     * 按id修改供应商信息
     * 输入：供应商id，新负责人，新电话
     * 处理：根据供应商id，修改对应负责人和电话信息
     * 输出：ok
     * @param newHead 新负责人
     * @param newTel 新电话
     * @param supplierId 供应商id
     */
    @PutMapping( "updateById")
    @ApiOperation(value = "按修改供应商信息")
    public String updateById(Integer supplierId,String newHead,String newTel){
        supplierService.updateById(supplierId,newHead,newTel);
        return "ok";
    }

    /**
     * 查看供应商是否存在
     * 输入：供应商名称
     * 处理：根据供应商名称查询供应商对象。
     * 返回：ok/no
     * @param supplierName
     * @return
     */
    @GetMapping( "findByName")
    @ApiOperation(value = "查看供应商是否存在")
    public SupplierBean findByName(String supplierName){
        return supplierService.findByName(supplierName);
    }

    /**
     * 添加供应商
     * 输入：供应商对象
     * 处理：添加供应商对象
     * 输出：ok
     * 供应商信息：供应商名称，负责人，负责人电话、供应商地址，经营范围
     * @param supplierBean
     */
    @PostMapping( "add")
    @ApiOperation(value = "添加供应商")
     public String add(@RequestBody SupplierBean supplierBean){
        supplierService.add(supplierBean);
        return "ok";
    }

    /**
     * 查询所有供应商信息
     * 输入：无
     * 处理：查询所有供应商信息
     * 输出：供应商集合
     * 供应商信息：供应商编号，供应商名称
     * @return
     */
    @GetMapping( "findAll")
    @ApiOperation(value = "查询所有供应商")
    public List<SupplierBean> findAll(){
        return supplierService.findAll();
    };


}
